package cn.edu.xjtu.tencent.formal;

/**
 * @author Hydrion-QLz
 * @date 2022-09-13 20:45
 * @description
 */
public class third {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * @param m int整型
     * @param a ListNode类 指向彩带的起点，val表示当前节点的val，next指向下一个节点
     * @return ListNode类一维数组
     */
    public ListNode[] solve(int m, ListNode a) {
        // write code here
        ListNode[] ret = new ListNode[m];
        ListNode[] tail = new ListNode[m];
        while (a != null) {
            int idx = a.val % m;
            if (ret[idx] == null) {
                ret[idx] = new ListNode(a.val);
                tail[idx] = ret[idx];
            } else {
                tail[idx].next = new ListNode(a.val);
                tail[idx] = tail[idx].next;
            }
            a = a.next;
        }
        return ret;
    }
}
